/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package manejadores;

/**
 *
 * @author Ramon
 */
import com.akcess.exception.*;
import com.akcess.vo.*;
import com.akcess.impl.*;
import com.akcess.dao.*;
import java.sql.*;
import java.util.*;
/**
 *
 * @author Ramon
 */
public class ManejadorAtributos {
    private Connection conexion = null;

    public ManejadorAtributos(Connection con) {
        this.conexion = con;
    }
    
    /**
     * Agrega un nuevo atributo a la tabla de atributos.
     * @param atributo Es el nuevo atributo a ser agregado.
     * @throws com.akcess.exception.Atributos_recursosException Utilizado si se mete un nombre atributo identico.
     */
    public void AgregarAtributos(Atributos_recursos atributo) throws Atributos_recursosException{
     
             //Agrego a la base de datos el nuevo atributo
            Atributos_recursosDAOImpl manejadorAtributos = new Atributos_recursosDAOImpl();
            manejadorAtributos.insert(atributo, this.conexion);
       
    }
     /**
     * Realiza el borrado de la BD de un Atributo determinado.
     * @param idTipo_recurso Contiene el id del Tipo de recurso que sera eliminado.
     * @throws com.akcess.exception.Tipo_recursoException Lanza excepciones del tipo Tipo_recursoException, creada por el DAOGenerator.
     */
    public void BorrarAtributo(int idAtributo) throws Atributos_recursosException {   
             //Me conecto a la BD           
            Atributos_recursosPK AtributoPK = new Atributos_recursosPK();
            AtributoPK.setId_atributos(idAtributo);
            Atributos_recursosDAOImpl manejadorAtributo = new Atributos_recursosDAOImpl();
            manejadorAtributo.delete(AtributoPK, this.conexion);
    }
    
    /**
     * Traer un atributo de la base de datos.
     * @param idAtri Es el id que identifica al atributo.
     * @return Retorna un objeto que contiene todos los datos del atributo.
     * @throws com.akcess.exception.Atributos_recursosException
     */
    public Atributos_recursos ObtenerAtributo(int idAtri) throws Atributos_recursosException{
        Atributos_recursos atributo = null;
        
            Atributos_recursosDAOImpl AtribuDAO = new Atributos_recursosDAOImpl();
            atributo = AtribuDAO.findByPrimaryKey(idAtri, this.conexion);
        
        return atributo;
    }
    
   /**
    * Retorna todos los Atributos que existen en la base de datos.
    * @return Es un vector que contiene a todos los atributos que existen en el sistema. 
    * @throws com.akcess.exception.Tipo_recursoException Es lanzado en el caso que no se encuentren ninguna fila en la BD.
    */ 
    public Atributos_recursos[] BuscarTodosAtributos() throws Atributos_recursosException{
            Atributos_recursos[] tipos = null;
        
            Atributos_recursosDAOImpl AtribuDAO = new Atributos_recursosDAOImpl();
            tipos = AtribuDAO.findAll(this.conexion);
        
        return tipos;
    }
    
     /**
     * Obtiene TODOS los Subtipos de Recursos existentes 
     * @return Un vector del tipo Tipo_tiene_atributos, que relaciona el id de cada Tipo con el id de cada atributo
     * que tiene cada subtipo.
     * @throws com.akcess.exception.Modulo_tiene_operacionException Lanza excepciones del tipo Modulo_tiene_operacionException, creada por el DAOGenerator.
     */
    public Tipo_tiene_atributos[] ObtenerTipoAtributo() throws Tipo_tiene_atributosException {
        Tipo_tiene_atributos[] modOper = null;
        try {
            Tipo_tiene_atributosDAOImpl subTipoDAO = new Tipo_tiene_atributosDAOImpl();
            modOper = subTipoDAO.findAll(this.conexion);
        } catch (Tipo_tiene_atributosException ex) {
            ex.printStackTrace();
        }
        return modOper;
    }
}
